{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "05dbb3f0-26b4-4089-9ae3-bd09a61eff73",
   "metadata": {},
   "outputs": [],
   "source": [
    "num1 = 10\n",
    "num2 = 20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c29d4768-3283-47fb-9b9e-04b3cd1c9018",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "eab89d50-d8e5-4557-a40d-9c209ef79814",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function print>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "98eba01e-12e7-4b2d-adff-1beb95bd66d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "num1 = 10\n",
    "num2 = 20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "df68aedb-6a69-4d42-93aa-4b9ab22e2083",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function print>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8972f138-ee46-40f5-92c8-ab477d515c90",
   "metadata": {},
   "outputs": [],
   "source": [
    "num1 = 10\n",
    "num2 = 20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "828dc6de-a114-4e32-a925-91707df63073",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0cd9e7c7-e586-40d0-b5dd-7e33cde0faa0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5d593a81-760f-4da1-8a2f-e465f0f2c229",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d89ab13f-9dae-4908-a25a-001d14d7e7c5",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv('practice/lianjia.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f864b071-3c7c-464c-b51e-8c4b4e43b0ba",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9d2ce4bf-75c3-4b21-be69-dadb8c465af6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86ef1b0f-ec07-46d2-ba16-cea9efab8c88",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f4e9b1d3-80b1-43d2-8c1d-e219f6e2aa20",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Direction</th>\n",
       "      <th>District</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Floor</th>\n",
       "      <th>Garden</th>\n",
       "      <th>Id</th>\n",
       "      <th>Layout</th>\n",
       "      <th>Price</th>\n",
       "      <th>Region</th>\n",
       "      <th>Renovation</th>\n",
       "      <th>Size</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>东西</td>\n",
       "      <td>灯市口</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>锡拉胡同21号院</td>\n",
       "      <td>101102647043</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>780.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>75.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>南北</td>\n",
       "      <td>东单</td>\n",
       "      <td>无电梯</td>\n",
       "      <td>6</td>\n",
       "      <td>东华门大街</td>\n",
       "      <td>101102650978</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>705.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>60.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>南西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>16</td>\n",
       "      <td>新世界中心</td>\n",
       "      <td>101102672743</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>210.0</td>\n",
       "      <td>1996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>南</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>兴隆都市馨园</td>\n",
       "      <td>101102577410</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>420.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>南</td>\n",
       "      <td>陶然亭</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>19</td>\n",
       "      <td>中海紫御公馆</td>\n",
       "      <td>101102574696</td>\n",
       "      <td>2室2厅</td>\n",
       "      <td>998.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>90.0</td>\n",
       "      <td>2010</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Direction District Elevator  Floor    Garden            Id Layout   Price  \\\n",
       "0        东西      灯市口      NaN      6  锡拉胡同21号院  101102647043   3室1厅   780.0   \n",
       "1        南北       东单      无电梯      6     东华门大街  101102650978   2室1厅   705.0   \n",
       "2        南西      崇文门      有电梯     16     新世界中心  101102672743   3室1厅  1400.0   \n",
       "3         南      崇文门      NaN      7    兴隆都市馨园  101102577410   1室1厅   420.0   \n",
       "4         南      陶然亭      有电梯     19    中海紫御公馆  101102574696   2室2厅   998.0   \n",
       "\n",
       "  Region Renovation   Size  Year  \n",
       "0     东城         精装   75.0  1988  \n",
       "1     东城         精装   60.0  1988  \n",
       "2     东城         其他  210.0  1996  \n",
       "3     东城         精装   39.0  2004  \n",
       "4     东城         精装   90.0  2010  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "70b51ef3-f0e9-46e8-9427-06ec477ba35f",
   "metadata": {},
   "outputs": [],
   "source": [
    "data.loc[0, 'District'] = '灯市口123'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d7198844-4b70-46f2-b1fe-c2654731aab9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Direction</th>\n",
       "      <th>District</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Floor</th>\n",
       "      <th>Garden</th>\n",
       "      <th>Id</th>\n",
       "      <th>Layout</th>\n",
       "      <th>Price</th>\n",
       "      <th>Region</th>\n",
       "      <th>Renovation</th>\n",
       "      <th>Size</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>东西</td>\n",
       "      <td>灯市口123</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>锡拉胡同21号院</td>\n",
       "      <td>101102647043</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>780.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>75.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>南北</td>\n",
       "      <td>东单</td>\n",
       "      <td>无电梯</td>\n",
       "      <td>6</td>\n",
       "      <td>东华门大街</td>\n",
       "      <td>101102650978</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>705.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>60.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>南西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>16</td>\n",
       "      <td>新世界中心</td>\n",
       "      <td>101102672743</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>210.0</td>\n",
       "      <td>1996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>南</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>兴隆都市馨园</td>\n",
       "      <td>101102577410</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>420.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>南</td>\n",
       "      <td>陶然亭</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>19</td>\n",
       "      <td>中海紫御公馆</td>\n",
       "      <td>101102574696</td>\n",
       "      <td>2室2厅</td>\n",
       "      <td>998.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>90.0</td>\n",
       "      <td>2010</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Direction District Elevator  Floor    Garden            Id Layout   Price  \\\n",
       "0        东西   灯市口123      NaN      6  锡拉胡同21号院  101102647043   3室1厅   780.0   \n",
       "1        南北       东单      无电梯      6     东华门大街  101102650978   2室1厅   705.0   \n",
       "2        南西      崇文门      有电梯     16     新世界中心  101102672743   3室1厅  1400.0   \n",
       "3         南      崇文门      NaN      7    兴隆都市馨园  101102577410   1室1厅   420.0   \n",
       "4         南      陶然亭      有电梯     19    中海紫御公馆  101102574696   2室2厅   998.0   \n",
       "\n",
       "  Region Renovation   Size  Year  \n",
       "0     东城         精装   75.0  1988  \n",
       "1     东城         精装   60.0  1988  \n",
       "2     东城         其他  210.0  1996  \n",
       "3     东城         精装   39.0  2004  \n",
       "4     东城         精装   90.0  2010  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "950f4715-2341-45c5-9602-48c1c576560f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Direction</th>\n",
       "      <th>District</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Floor</th>\n",
       "      <th>Garden</th>\n",
       "      <th>Id</th>\n",
       "      <th>Layout</th>\n",
       "      <th>Price</th>\n",
       "      <th>Region</th>\n",
       "      <th>Renovation</th>\n",
       "      <th>Size</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>南西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>16</td>\n",
       "      <td>新世界中心</td>\n",
       "      <td>101102672743</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>210.0</td>\n",
       "      <td>1996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>南</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>兴隆都市馨园</td>\n",
       "      <td>101102577410</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>420.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>18</td>\n",
       "      <td>太华公寓</td>\n",
       "      <td>101102624056</td>\n",
       "      <td>1室0厅</td>\n",
       "      <td>518.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>64.0</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22160</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>无电梯</td>\n",
       "      <td>6</td>\n",
       "      <td>营房西街</td>\n",
       "      <td>101102492688</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>550.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>62.0</td>\n",
       "      <td>1990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22192</th>\n",
       "      <td>东</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16</td>\n",
       "      <td>国瑞城中区</td>\n",
       "      <td>101101379163</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>595.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>68.0</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23639</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>12</td>\n",
       "      <td>新景家园东区</td>\n",
       "      <td>101102684268</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>790.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>82.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23643</th>\n",
       "      <td>西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>12</td>\n",
       "      <td>前门东大街</td>\n",
       "      <td>101102433128</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>445.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>49.0</td>\n",
       "      <td>1979</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23655</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12</td>\n",
       "      <td>新裕家园</td>\n",
       "      <td>101102454084</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1293.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>125.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23656</th>\n",
       "      <td>东西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16</td>\n",
       "      <td>新景家园西区</td>\n",
       "      <td>101102532627</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>870.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>91.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23676</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15</td>\n",
       "      <td>新景家园东区</td>\n",
       "      <td>101102657079</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>790.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>81.0</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>146 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Direction District Elevator  Floor  Garden            Id Layout   Price  \\\n",
       "2            南西      崇文门      有电梯     16   新世界中心  101102672743   3室1厅  1400.0   \n",
       "3             南      崇文门      NaN      7  兴隆都市馨园  101102577410   1室1厅   420.0   \n",
       "13            西      崇文门      有电梯     18    太华公寓  101102624056   1室0厅   518.0   \n",
       "22160        南北      崇文门      无电梯      6    营房西街  101102492688   2室1厅   550.0   \n",
       "22192         东      崇文门      NaN     16   国瑞城中区  101101379163   2室1厅   595.0   \n",
       "...         ...      ...      ...    ...     ...           ...    ...     ...   \n",
       "23639        南北      崇文门      有电梯     12  新景家园东区  101102684268   2室1厅   790.0   \n",
       "23643         西      崇文门      有电梯     12   前门东大街  101102433128   2室1厅   445.0   \n",
       "23655        南北      崇文门      NaN     12    新裕家园  101102454084   3室1厅  1293.0   \n",
       "23656        东西      崇文门      NaN     16  新景家园西区  101102532627   3室1厅   870.0   \n",
       "23676        南北      崇文门      NaN     15  新景家园东区  101102657079   1室1厅   790.0   \n",
       "\n",
       "      Region Renovation   Size  Year  \n",
       "2         东城         其他  210.0  1996  \n",
       "3         东城         精装   39.0  2004  \n",
       "13        东城         精装   64.0  2000  \n",
       "22160     东城         其他   62.0  1990  \n",
       "22192     东城         简装   68.0  2006  \n",
       "...      ...        ...    ...   ...  \n",
       "23639     东城         简装   82.0  2004  \n",
       "23643     东城         简装   49.0  1979  \n",
       "23655     东城         精装  125.0  2004  \n",
       "23656     东城         精装   91.0  2004  \n",
       "23676     东城         精装   81.0  2008  \n",
       "\n",
       "[146 rows x 12 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.loc[data['District'] == '崇文门']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "202afe7a-bc6e-4f1c-9c6b-22d071cba2e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Direction</th>\n",
       "      <th>District</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Floor</th>\n",
       "      <th>Garden</th>\n",
       "      <th>Id</th>\n",
       "      <th>Layout</th>\n",
       "      <th>Price</th>\n",
       "      <th>Region</th>\n",
       "      <th>Renovation</th>\n",
       "      <th>Size</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>南西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>16</td>\n",
       "      <td>新世界中心</td>\n",
       "      <td>101102672743</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>210.0</td>\n",
       "      <td>1996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>南</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>兴隆都市馨园</td>\n",
       "      <td>101102577410</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>420.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>18</td>\n",
       "      <td>太华公寓</td>\n",
       "      <td>101102624056</td>\n",
       "      <td>1室0厅</td>\n",
       "      <td>518.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>64.0</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22160</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>无电梯</td>\n",
       "      <td>6</td>\n",
       "      <td>营房西街</td>\n",
       "      <td>101102492688</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>550.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>62.0</td>\n",
       "      <td>1990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22192</th>\n",
       "      <td>东</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16</td>\n",
       "      <td>国瑞城中区</td>\n",
       "      <td>101101379163</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>595.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>68.0</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23639</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>12</td>\n",
       "      <td>新景家园东区</td>\n",
       "      <td>101102684268</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>790.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>82.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23643</th>\n",
       "      <td>西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>12</td>\n",
       "      <td>前门东大街</td>\n",
       "      <td>101102433128</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>445.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>49.0</td>\n",
       "      <td>1979</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23655</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12</td>\n",
       "      <td>新裕家园</td>\n",
       "      <td>101102454084</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1293.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>125.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23656</th>\n",
       "      <td>东西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16</td>\n",
       "      <td>新景家园西区</td>\n",
       "      <td>101102532627</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>870.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>91.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23676</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15</td>\n",
       "      <td>新景家园东区</td>\n",
       "      <td>101102657079</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>790.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>81.0</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>146 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Direction District Elevator  Floor  Garden            Id Layout   Price  \\\n",
       "2            南西      崇文门      有电梯     16   新世界中心  101102672743   3室1厅  1400.0   \n",
       "3             南      崇文门      NaN      7  兴隆都市馨园  101102577410   1室1厅   420.0   \n",
       "13            西      崇文门      有电梯     18    太华公寓  101102624056   1室0厅   518.0   \n",
       "22160        南北      崇文门      无电梯      6    营房西街  101102492688   2室1厅   550.0   \n",
       "22192         东      崇文门      NaN     16   国瑞城中区  101101379163   2室1厅   595.0   \n",
       "...         ...      ...      ...    ...     ...           ...    ...     ...   \n",
       "23639        南北      崇文门      有电梯     12  新景家园东区  101102684268   2室1厅   790.0   \n",
       "23643         西      崇文门      有电梯     12   前门东大街  101102433128   2室1厅   445.0   \n",
       "23655        南北      崇文门      NaN     12    新裕家园  101102454084   3室1厅  1293.0   \n",
       "23656        东西      崇文门      NaN     16  新景家园西区  101102532627   3室1厅   870.0   \n",
       "23676        南北      崇文门      NaN     15  新景家园东区  101102657079   1室1厅   790.0   \n",
       "\n",
       "      Region Renovation   Size  Year  \n",
       "2         东城         其他  210.0  1996  \n",
       "3         东城         精装   39.0  2004  \n",
       "13        东城         精装   64.0  2000  \n",
       "22160     东城         其他   62.0  1990  \n",
       "22192     东城         简装   68.0  2006  \n",
       "...      ...        ...    ...   ...  \n",
       "23639     东城         简装   82.0  2004  \n",
       "23643     东城         简装   49.0  1979  \n",
       "23655     东城         精装  125.0  2004  \n",
       "23656     东城         精装   91.0  2004  \n",
       "23676     东城         精装   81.0  2008  \n",
       "\n",
       "[146 rows x 12 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.loc[data['District'] == '崇文门']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "75ab3360-78df-4d4b-9087-05ae3910dcb3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([    2,     3,    13, 22160, 22192, 22195, 22197, 22206, 22210,\n",
       "            22219,\n",
       "            ...\n",
       "            23612, 23614, 23615, 23619, 23625, 23639, 23643, 23655, 23656,\n",
       "            23676],\n",
       "           dtype='int64', length=146)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.loc[data['District'] == '崇文门'].index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "01ad6230-a5bd-45ac-a9fe-82874d9e69a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# data.drop #删除行或列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d353930d-dd93-44f1-9949-87b3c71203ab",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c4a90ae0-c88d-4ead-8038-3838cab978e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 查看是否有缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "9414e4d2-3972-4c09-9c9b-8425d3dc76d1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Direction     False\n",
       "District      False\n",
       "Elevator       True\n",
       "Floor         False\n",
       "Garden        False\n",
       "Id            False\n",
       "Layout        False\n",
       "Price         False\n",
       "Region        False\n",
       "Renovation    False\n",
       "Size          False\n",
       "Year          False\n",
       "dtype: bool"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().any() # any() all()\n",
    "#缺失值处理：删除（数据量大） 填补（均值，中位数）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "22cb480f-be28-4ef6-bd5f-f72882648a88",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 重复值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f30477e6-d61b-4258-a8d8-a116ca1862de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0        False\n",
       "1        False\n",
       "2        False\n",
       "3        False\n",
       "4        False\n",
       "         ...  \n",
       "23672     True\n",
       "23673     True\n",
       "23674     True\n",
       "23675     True\n",
       "23676     True\n",
       "Length: 23677, dtype: bool"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.duplicated(subset=['Direction', 'District'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "d1338c0c-a4e1-46fb-8f66-84fe033dfaac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Direction</th>\n",
       "      <th>District</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Floor</th>\n",
       "      <th>Garden</th>\n",
       "      <th>Id</th>\n",
       "      <th>Layout</th>\n",
       "      <th>Price</th>\n",
       "      <th>Region</th>\n",
       "      <th>Renovation</th>\n",
       "      <th>Size</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>东西</td>\n",
       "      <td>灯市口123</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>锡拉胡同21号院</td>\n",
       "      <td>101102647043</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>780.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>75.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>南北</td>\n",
       "      <td>东单</td>\n",
       "      <td>无电梯</td>\n",
       "      <td>6</td>\n",
       "      <td>东华门大街</td>\n",
       "      <td>101102650978</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>705.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>60.0</td>\n",
       "      <td>1988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>南西</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>16</td>\n",
       "      <td>新世界中心</td>\n",
       "      <td>101102672743</td>\n",
       "      <td>3室1厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>其他</td>\n",
       "      <td>210.0</td>\n",
       "      <td>1996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>南</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>兴隆都市馨园</td>\n",
       "      <td>101102577410</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>420.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>南</td>\n",
       "      <td>陶然亭</td>\n",
       "      <td>有电梯</td>\n",
       "      <td>19</td>\n",
       "      <td>中海紫御公馆</td>\n",
       "      <td>101102574696</td>\n",
       "      <td>2室2厅</td>\n",
       "      <td>998.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>90.0</td>\n",
       "      <td>2010</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23672</th>\n",
       "      <td>南北</td>\n",
       "      <td>广渠门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16</td>\n",
       "      <td>保利蔷薇</td>\n",
       "      <td>101102296423</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>1010.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>97.0</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23673</th>\n",
       "      <td>南北</td>\n",
       "      <td>永定门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>郭庄北里</td>\n",
       "      <td>101102593534</td>\n",
       "      <td>2室1厅</td>\n",
       "      <td>468.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>66.0</td>\n",
       "      <td>1995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23674</th>\n",
       "      <td>南北</td>\n",
       "      <td>和平里</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>康鸿家园</td>\n",
       "      <td>101102549465</td>\n",
       "      <td>3室2厅</td>\n",
       "      <td>1400.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>155.0</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23675</th>\n",
       "      <td>南北</td>\n",
       "      <td>前门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6</td>\n",
       "      <td>台基厂头条10号院</td>\n",
       "      <td>101102322422</td>\n",
       "      <td>4室1厅</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>简装</td>\n",
       "      <td>107.0</td>\n",
       "      <td>1990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23676</th>\n",
       "      <td>南北</td>\n",
       "      <td>崇文门</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15</td>\n",
       "      <td>新景家园东区</td>\n",
       "      <td>101102657079</td>\n",
       "      <td>1室1厅</td>\n",
       "      <td>790.0</td>\n",
       "      <td>东城</td>\n",
       "      <td>精装</td>\n",
       "      <td>81.0</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>23677 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Direction District Elevator  Floor     Garden            Id Layout  \\\n",
       "0            东西   灯市口123      NaN      6   锡拉胡同21号院  101102647043   3室1厅   \n",
       "1            南北       东单      无电梯      6      东华门大街  101102650978   2室1厅   \n",
       "2            南西      崇文门      有电梯     16      新世界中心  101102672743   3室1厅   \n",
       "3             南      崇文门      NaN      7     兴隆都市馨园  101102577410   1室1厅   \n",
       "4             南      陶然亭      有电梯     19     中海紫御公馆  101102574696   2室2厅   \n",
       "...         ...      ...      ...    ...        ...           ...    ...   \n",
       "23672        南北      广渠门      NaN     16       保利蔷薇  101102296423   2室1厅   \n",
       "23673        南北      永定门      NaN      6       郭庄北里  101102593534   2室1厅   \n",
       "23674        南北      和平里      NaN      6       康鸿家园  101102549465   3室2厅   \n",
       "23675        南北       前门      NaN      6  台基厂头条10号院  101102322422   4室1厅   \n",
       "23676        南北      崇文门      NaN     15     新景家园东区  101102657079   1室1厅   \n",
       "\n",
       "        Price Region Renovation   Size  Year  \n",
       "0       780.0     东城         精装   75.0  1988  \n",
       "1       705.0     东城         精装   60.0  1988  \n",
       "2      1400.0     东城         其他  210.0  1996  \n",
       "3       420.0     东城         精装   39.0  2004  \n",
       "4       998.0     东城         精装   90.0  2010  \n",
       "...       ...    ...        ...    ...   ...  \n",
       "23672  1010.0     东城         简装   97.0  2008  \n",
       "23673   468.0     东城         简装   66.0  1995  \n",
       "23674  1400.0     东城         简装  155.0  2000  \n",
       "23675  1100.0     东城         简装  107.0  1990  \n",
       "23676   790.0     东城         精装   81.0  2008  \n",
       "\n",
       "[23677 rows x 12 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "37a4964d-f2a0-464d-8532-74defa7f1ddf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 异常值处理 对于数值数据，一般采用可视化的方式查看，散点图，箱型图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "d80bbc13-9048-469f-9c26-7667e3ca91ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "# matplotlib seaborn pyecharts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "b47df4aa-c29e-4888-bcc9-4e22b03cbfde",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "f94c530a-2332-4046-bed3-955fecf73178",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "\n",
    "plt.boxplot(data['Floor'])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1dd3a1a8-bcdd-4bde-9a6a-753c6268b123",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "1a551cb2-78ac-401c-b1ef-896ba1eeb6b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function pandas.core.reshape.merge.merge(left: 'DataFrame | Series', right: 'DataFrame | Series', how: 'str' = 'inner', on: 'IndexLabel | None' = None, left_on: 'IndexLabel | None' = None, right_on: 'IndexLabel | None' = None, left_index: 'bool' = False, right_index: 'bool' = False, sort: 'bool' = False, suffixes: 'Suffixes' = ('_x', '_y'), copy: 'bool' = True, indicator: 'bool' = False, validate: 'str | None' = None) -> 'DataFrame'>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "0d3b3d01-1e85-416f-80ba-b1dd44a3ef6d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 读取 清洗 合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "af1276c2-e7e6-444e-be44-3c2dec0f5071",
   "metadata": {},
   "outputs": [],
   "source": [
    "#数据集划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "d3fd0582-840c-4451-8398-aeb184d26d4c",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('practice/泰坦尼克号.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "29dcc8db-9bbb-4377-b7bc-50758cec7669",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "893b9da8-a0ef-4b6b-80cf-1fbed1b55dd2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 提取特征值和目标值\n",
    "x = data[['Pclass', 'Age']]\n",
    "y = data['Survived']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "4892deb3-c3e9-4df4-8dbd-0930777a9c77",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据集划分\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "65b6df24-6f6f-4985-8039-448fd413dcde",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 返回值 x_train x_test y_train y_test\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, train_size = 0.2, random_state=22)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "bad6833c-77f0-4d88-a36e-b17db4833ae0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>816</th>\n",
       "      <td>3</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>789</th>\n",
       "      <td>1</td>\n",
       "      <td>46.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>869</th>\n",
       "      <td>3</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>235</th>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>473</th>\n",
       "      <td>2</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>792</th>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>498</th>\n",
       "      <td>1</td>\n",
       "      <td>25.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>227</th>\n",
       "      <td>3</td>\n",
       "      <td>20.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165</th>\n",
       "      <td>3</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>808</th>\n",
       "      <td>2</td>\n",
       "      <td>39.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>713 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass   Age\n",
       "816       3  23.0\n",
       "789       1  46.0\n",
       "869       3   4.0\n",
       "235       3   NaN\n",
       "473       2  23.0\n",
       "..      ...   ...\n",
       "792       3   NaN\n",
       "498       1  25.0\n",
       "227       3  20.5\n",
       "165       3   9.0\n",
       "808       2  39.0\n",
       "\n",
       "[713 rows x 2 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "bfd91800-690f-4da6-861a-ca4fef27581d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "def standard_scaler():\n",
    "    data = [[56324, 9.257, 1.321],\n",
    "    [75489, 9.213, 0.986],\n",
    "    [64325, 10.234, 1.219]\n",
    "    ]\n",
    "    transfer = StandardScaler()\n",
    "    data_new = transfer.fit_transform(data)\n",
    "    # 标准化之后的结果\n",
    "    print(data_new)\n",
    "    # 每一列的均值\n",
    "    print(transfer.mean_)\n",
    "    # 每一列的方差\n",
    "    print(transfer.var_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "34d82d96-98f9-4d21-a467-00a6d9c1b5d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 特征降维 相关系数法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "a25c3ee5-50c2-4e30-afc2-940432c7330f",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('practice/factor_returns.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "7b61d215-ff36-439e-bcec-a184fa4bbafe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>pe_ratio</th>\n",
       "      <th>pb_ratio</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>return_on_asset_net_profit</th>\n",
       "      <th>du_return_on_equity</th>\n",
       "      <th>ev</th>\n",
       "      <th>earnings_per_share</th>\n",
       "      <th>revenue</th>\n",
       "      <th>total_expense</th>\n",
       "      <th>date</th>\n",
       "      <th>return</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>000001.XSHE</td>\n",
       "      <td>5.9572</td>\n",
       "      <td>1.1818</td>\n",
       "      <td>8.525255e+10</td>\n",
       "      <td>0.8008</td>\n",
       "      <td>14.9403</td>\n",
       "      <td>1.211445e+12</td>\n",
       "      <td>2.010</td>\n",
       "      <td>2.070140e+10</td>\n",
       "      <td>1.088254e+10</td>\n",
       "      <td>2012-01-31</td>\n",
       "      <td>0.027657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>000002.XSHE</td>\n",
       "      <td>7.0289</td>\n",
       "      <td>1.5880</td>\n",
       "      <td>8.411336e+10</td>\n",
       "      <td>1.6463</td>\n",
       "      <td>7.8656</td>\n",
       "      <td>3.002521e+11</td>\n",
       "      <td>0.326</td>\n",
       "      <td>2.930837e+10</td>\n",
       "      <td>2.378348e+10</td>\n",
       "      <td>2012-01-31</td>\n",
       "      <td>0.082352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>000008.XSHE</td>\n",
       "      <td>-262.7461</td>\n",
       "      <td>7.0003</td>\n",
       "      <td>5.170455e+08</td>\n",
       "      <td>-0.5678</td>\n",
       "      <td>-0.5943</td>\n",
       "      <td>7.705178e+08</td>\n",
       "      <td>-0.006</td>\n",
       "      <td>1.167983e+07</td>\n",
       "      <td>1.203008e+07</td>\n",
       "      <td>2012-01-31</td>\n",
       "      <td>0.099789</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>000060.XSHE</td>\n",
       "      <td>16.4760</td>\n",
       "      <td>3.7146</td>\n",
       "      <td>1.968046e+10</td>\n",
       "      <td>5.6036</td>\n",
       "      <td>14.6170</td>\n",
       "      <td>2.800916e+10</td>\n",
       "      <td>0.350</td>\n",
       "      <td>9.189387e+09</td>\n",
       "      <td>7.935543e+09</td>\n",
       "      <td>2012-01-31</td>\n",
       "      <td>0.121595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>000069.XSHE</td>\n",
       "      <td>12.5878</td>\n",
       "      <td>2.5616</td>\n",
       "      <td>4.172721e+10</td>\n",
       "      <td>2.8729</td>\n",
       "      <td>10.9097</td>\n",
       "      <td>8.124738e+10</td>\n",
       "      <td>0.271</td>\n",
       "      <td>8.951453e+09</td>\n",
       "      <td>7.091398e+09</td>\n",
       "      <td>2012-01-31</td>\n",
       "      <td>-0.002681</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         index  pe_ratio  pb_ratio    market_cap  return_on_asset_net_profit  \\\n",
       "0  000001.XSHE    5.9572    1.1818  8.525255e+10                      0.8008   \n",
       "1  000002.XSHE    7.0289    1.5880  8.411336e+10                      1.6463   \n",
       "2  000008.XSHE -262.7461    7.0003  5.170455e+08                     -0.5678   \n",
       "3  000060.XSHE   16.4760    3.7146  1.968046e+10                      5.6036   \n",
       "4  000069.XSHE   12.5878    2.5616  4.172721e+10                      2.8729   \n",
       "\n",
       "   du_return_on_equity            ev  earnings_per_share       revenue  \\\n",
       "0              14.9403  1.211445e+12               2.010  2.070140e+10   \n",
       "1               7.8656  3.002521e+11               0.326  2.930837e+10   \n",
       "2              -0.5943  7.705178e+08              -0.006  1.167983e+07   \n",
       "3              14.6170  2.800916e+10               0.350  9.189387e+09   \n",
       "4              10.9097  8.124738e+10               0.271  8.951453e+09   \n",
       "\n",
       "   total_expense        date    return  \n",
       "0   1.088254e+10  2012-01-31  0.027657  \n",
       "1   2.378348e+10  2012-01-31  0.082352  \n",
       "2   1.203008e+07  2012-01-31  0.099789  \n",
       "3   7.935543e+09  2012-01-31  0.121595  \n",
       "4   7.091398e+09  2012-01-31 -0.002681  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "d8110236-cd7b-4e2d-837c-af332b0d7f38",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.loc[:, 'pe_ratio': 'total_expense']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "8633c9e0-c64b-448c-9590-b7de7c3b52a3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pe_ratio</th>\n",
       "      <th>pb_ratio</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>return_on_asset_net_profit</th>\n",
       "      <th>du_return_on_equity</th>\n",
       "      <th>ev</th>\n",
       "      <th>earnings_per_share</th>\n",
       "      <th>revenue</th>\n",
       "      <th>total_expense</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.9572</td>\n",
       "      <td>1.1818</td>\n",
       "      <td>8.525255e+10</td>\n",
       "      <td>0.8008</td>\n",
       "      <td>14.9403</td>\n",
       "      <td>1.211445e+12</td>\n",
       "      <td>2.010</td>\n",
       "      <td>2.070140e+10</td>\n",
       "      <td>1.088254e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.0289</td>\n",
       "      <td>1.5880</td>\n",
       "      <td>8.411336e+10</td>\n",
       "      <td>1.6463</td>\n",
       "      <td>7.8656</td>\n",
       "      <td>3.002521e+11</td>\n",
       "      <td>0.326</td>\n",
       "      <td>2.930837e+10</td>\n",
       "      <td>2.378348e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-262.7461</td>\n",
       "      <td>7.0003</td>\n",
       "      <td>5.170455e+08</td>\n",
       "      <td>-0.5678</td>\n",
       "      <td>-0.5943</td>\n",
       "      <td>7.705178e+08</td>\n",
       "      <td>-0.006</td>\n",
       "      <td>1.167983e+07</td>\n",
       "      <td>1.203008e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16.4760</td>\n",
       "      <td>3.7146</td>\n",
       "      <td>1.968046e+10</td>\n",
       "      <td>5.6036</td>\n",
       "      <td>14.6170</td>\n",
       "      <td>2.800916e+10</td>\n",
       "      <td>0.350</td>\n",
       "      <td>9.189387e+09</td>\n",
       "      <td>7.935543e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12.5878</td>\n",
       "      <td>2.5616</td>\n",
       "      <td>4.172721e+10</td>\n",
       "      <td>2.8729</td>\n",
       "      <td>10.9097</td>\n",
       "      <td>8.124738e+10</td>\n",
       "      <td>0.271</td>\n",
       "      <td>8.951453e+09</td>\n",
       "      <td>7.091398e+09</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   pe_ratio  pb_ratio    market_cap  return_on_asset_net_profit  \\\n",
       "0    5.9572    1.1818  8.525255e+10                      0.8008   \n",
       "1    7.0289    1.5880  8.411336e+10                      1.6463   \n",
       "2 -262.7461    7.0003  5.170455e+08                     -0.5678   \n",
       "3   16.4760    3.7146  1.968046e+10                      5.6036   \n",
       "4   12.5878    2.5616  4.172721e+10                      2.8729   \n",
       "\n",
       "   du_return_on_equity            ev  earnings_per_share       revenue  \\\n",
       "0              14.9403  1.211445e+12               2.010  2.070140e+10   \n",
       "1               7.8656  3.002521e+11               0.326  2.930837e+10   \n",
       "2              -0.5943  7.705178e+08              -0.006  1.167983e+07   \n",
       "3              14.6170  2.800916e+10               0.350  9.189387e+09   \n",
       "4              10.9097  8.124738e+10               0.271  8.951453e+09   \n",
       "\n",
       "   total_expense  \n",
       "0   1.088254e+10  \n",
       "1   2.378348e+10  \n",
       "2   1.203008e+07  \n",
       "3   7.935543e+09  \n",
       "4   7.091398e+09  "
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "c541ec95-d5bd-4234-ae94-cf1bbe43bbea",
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.stats import pearsonr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "b69f4a2f-342a-43fe-9ba0-a7ebb4ababae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.0043893227799362555"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pearsonr(data['pe_ratio'], data['pb_ratio'])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "7a213245-95db-4b92-9761-bae3916accd9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['pe_ratio', 'pb_ratio', 'market_cap', 'return_on_asset_net_profit',\n",
       "       'du_return_on_equity', 'ev', 'earnings_per_share', 'revenue',\n",
       "       'total_expense'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "32273dd4-51ea-4d98-a671-40a2ebb8de0f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pe_ratio 和 pe_ratio 的相关系数是：1.000000\n",
      "pe_ratio 和 pb_ratio 的相关系数是：-0.004389\n",
      "pe_ratio 和 market_cap 的相关系数是：-0.068861\n",
      "pe_ratio 和 return_on_asset_net_profit 的相关系数是：-0.066009\n",
      "pe_ratio 和 du_return_on_equity 的相关系数是：-0.082364\n",
      "pe_ratio 和 ev 的相关系数是：-0.046159\n",
      "pe_ratio 和 earnings_per_share 的相关系数是：-0.072082\n",
      "pe_ratio 和 revenue 的相关系数是：-0.058693\n",
      "pe_ratio 和 total_expense 的相关系数是：-0.055551\n",
      "pb_ratio 和 pe_ratio 的相关系数是：-0.004389\n",
      "pb_ratio 和 pb_ratio 的相关系数是：1.000000\n",
      "pb_ratio 和 market_cap 的相关系数是：0.009336\n",
      "pb_ratio 和 return_on_asset_net_profit 的相关系数是：0.445381\n",
      "pb_ratio 和 du_return_on_equity 的相关系数是：0.291367\n",
      "pb_ratio 和 ev 的相关系数是：-0.183232\n",
      "pb_ratio 和 earnings_per_share 的相关系数是：0.198708\n",
      "pb_ratio 和 revenue 的相关系数是：-0.177671\n",
      "pb_ratio 和 total_expense 的相关系数是：-0.173339\n",
      "market_cap 和 pe_ratio 的相关系数是：-0.068861\n",
      "market_cap 和 pb_ratio 的相关系数是：0.009336\n",
      "market_cap 和 market_cap 的相关系数是：1.000000\n",
      "market_cap 和 return_on_asset_net_profit 的相关系数是：0.214774\n",
      "market_cap 和 du_return_on_equity 的相关系数是：0.316288\n",
      "market_cap 和 ev 的相关系数是：0.565533\n",
      "market_cap 和 earnings_per_share 的相关系数是：0.524179\n",
      "market_cap 和 revenue 的相关系数是：0.440653\n",
      "market_cap 和 total_expense 的相关系数是：0.386550\n",
      "return_on_asset_net_profit 和 pe_ratio 的相关系数是：-0.066009\n",
      "return_on_asset_net_profit 和 pb_ratio 的相关系数是：0.445381\n",
      "return_on_asset_net_profit 和 market_cap 的相关系数是：0.214774\n",
      "return_on_asset_net_profit 和 return_on_asset_net_profit 的相关系数是：1.000000\n",
      "return_on_asset_net_profit 和 du_return_on_equity 的相关系数是：0.818697\n",
      "return_on_asset_net_profit 和 ev 的相关系数是：-0.101225\n",
      "return_on_asset_net_profit 和 earnings_per_share 的相关系数是：0.635933\n",
      "return_on_asset_net_profit 和 revenue 的相关系数是：0.038582\n",
      "return_on_asset_net_profit 和 total_expense 的相关系数是：0.027014\n",
      "du_return_on_equity 和 pe_ratio 的相关系数是：-0.082364\n",
      "du_return_on_equity 和 pb_ratio 的相关系数是：0.291367\n",
      "du_return_on_equity 和 market_cap 的相关系数是：0.316288\n",
      "du_return_on_equity 和 return_on_asset_net_profit 的相关系数是：0.818697\n",
      "du_return_on_equity 和 du_return_on_equity 的相关系数是：1.000000\n",
      "du_return_on_equity 和 ev 的相关系数是：0.118807\n",
      "du_return_on_equity 和 earnings_per_share 的相关系数是：0.651996\n",
      "du_return_on_equity 和 revenue 的相关系数是：0.163214\n",
      "du_return_on_equity 和 total_expense 的相关系数是：0.135412\n",
      "ev 和 pe_ratio 的相关系数是：-0.046159\n",
      "ev 和 pb_ratio 的相关系数是：-0.183232\n",
      "ev 和 market_cap 的相关系数是：0.565533\n",
      "ev 和 return_on_asset_net_profit 的相关系数是：-0.101225\n",
      "ev 和 du_return_on_equity 的相关系数是：0.118807\n",
      "ev 和 ev 的相关系数是：1.000000\n",
      "ev 和 earnings_per_share 的相关系数是：0.196033\n",
      "ev 和 revenue 的相关系数是：0.224363\n",
      "ev 和 total_expense 的相关系数是：0.149857\n",
      "earnings_per_share 和 pe_ratio 的相关系数是：-0.072082\n",
      "earnings_per_share 和 pb_ratio 的相关系数是：0.198708\n",
      "earnings_per_share 和 market_cap 的相关系数是：0.524179\n",
      "earnings_per_share 和 return_on_asset_net_profit 的相关系数是：0.635933\n",
      "earnings_per_share 和 du_return_on_equity 的相关系数是：0.651996\n",
      "earnings_per_share 和 ev 的相关系数是：0.196033\n",
      "earnings_per_share 和 earnings_per_share 的相关系数是：1.000000\n",
      "earnings_per_share 和 revenue 的相关系数是：0.141473\n",
      "earnings_per_share 和 total_expense 的相关系数是：0.105022\n",
      "revenue 和 pe_ratio 的相关系数是：-0.058693\n",
      "revenue 和 pb_ratio 的相关系数是：-0.177671\n",
      "revenue 和 market_cap 的相关系数是：0.440653\n",
      "revenue 和 return_on_asset_net_profit 的相关系数是：0.038582\n",
      "revenue 和 du_return_on_equity 的相关系数是：0.163214\n",
      "revenue 和 ev 的相关系数是：0.224363\n",
      "revenue 和 earnings_per_share 的相关系数是：0.141473\n",
      "revenue 和 revenue 的相关系数是：1.000000\n",
      "revenue 和 total_expense 的相关系数是：0.995845\n",
      "total_expense 和 pe_ratio 的相关系数是：-0.055551\n",
      "total_expense 和 pb_ratio 的相关系数是：-0.173339\n",
      "total_expense 和 market_cap 的相关系数是：0.386550\n",
      "total_expense 和 return_on_asset_net_profit 的相关系数是：0.027014\n",
      "total_expense 和 du_return_on_equity 的相关系数是：0.135412\n",
      "total_expense 和 ev 的相关系数是：0.149857\n",
      "total_expense 和 earnings_per_share 的相关系数是：0.105022\n",
      "total_expense 和 revenue 的相关系数是：0.995845\n",
      "total_expense 和 total_expense 的相关系数是：1.000000\n"
     ]
    }
   ],
   "source": [
    "for col1 in data.columns:\n",
    "    for col2 in data.columns:\n",
    "        r = pearsonr(data[col1], data[col2])[0]\n",
    "        print('%s 和 %s 的相关系数是：%f' % (col1, col2, r))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "8a05d077-f60d-4bf6-acf8-81b1b2e94234",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 散点图可视化相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "21520b35-618b-4b99-a4c0-7b80b864ee2c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "\n",
    "plt.scatter(data['pe_ratio'], data['pb_ratio'])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a9450322-f99e-4df6-afb9-34c8ae8aca60",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
